IP sev VPN

简述

IPSec本身不规定使用哪些算法,只提供框架,使用者可选择任一支持的算法,如果算法被破解,可随时更换。使用的参数如下:

<1>散列函数:MD5,SHA1;

<2>加密算法:DES,3DES,AES;

<3>封装协议:AH,ESP;

<4>封装模式:传输模式,隧道模式;

<5>密钥有效期:60s~86400s;

散列函数

四个特点:
1.固定长度:MD5散列值128bit SHA-1散列值160bit
2.雪崩效应:数据有一点微小的改变都会使散列值差距变的很大
3.单向:只能通过原始数据得到散列值,不能逆推
4.冲突避免:即唯一性
作用:
1.验证数据完整性 将原始文件散列值和文件一同发送,接收方比较散列值
2.进行源认证 紧紧验证数据完整性是不足以保障安全,因此需要进行源认证,密钥化散列信息代码(HMAC)技术不仅可以检测完整性,还可以检测更新源。
HMAC实现方式,首先双方设置共享密码,然后将密码与数据一起进行散列计算得到散列值,然后与数据一起发送出去。

加密算法:

1.对称密钥算法
2.非对称密钥算法
对称密钥算法
发送和接收双发有相同的密钥,发送发使用密钥进行加密,接收方使用密钥进行解密。
优点:速度快,安全,紧凑
缺点:明文传输共享密钥,容易被劫持;不支持数字签名和不可否认性。
对称算法中的主流协议:DES,3DES,AES,RC4..
非对称密钥算法
先使用非对称算法获得公钥和私钥,使用其中一个密钥进行加密时必须使用另一个密钥进行解密。发送方要先获取接收方的公钥,然后使用公钥进行加密,接收方在使用私钥进行解密。

非对称密钥可用于数字签名
步骤:首先对要认证的重要明文信息进行散列计算获得散列值,然后发送方使用自己的私钥进行加密,加密后的散列值称为数字签名。然后把明文和数字签名一起发送给对方。接收方加收到数据后提取其中的明文信息和数字签名,然后对明文进行散列计算得到散列值一,在用发送方的公钥解密数字签名得到散列值二对比两个散列值即可确认明文信息。保证了完整性和源认证。

特点:仅用于密钥交换(对密钥进行加密)和数字签名
优点:安全,支持数字签名和不可否认性
缺点:加密速度满,密文会边长一般仅用来加密密钥或者散列值

封装协议:

ESP (Encapsulation Security Payload)安全封装负载
ESP仅能保护IP负载数据,不对原始IP头部进行保护
包格式
image_1d856i1tr8b3u268dh95199a4d.png-34.8kB
ESP头部和尾部之间的数据会进行HMAC计算散列值,得到ESP验证数据

AH(Authentication Header)头部认证
IP 协议号为 51,只提供完整性校验和源认证两方面的安全服务,并且抵御重放攻击,不支持数据加密。
AH 对数据验证的范围更广,不仅包含原始数据,还包含了原始 IP 头部,AH 认证头部的名称就由此而得名。
缺点:不提供私密性服务,不可以进行加密,而且会对IP头部进行认证,导致数据包不可以经过NAT。使用较少。

传输模式:

1.传输模式
2.隧道模式
传输模式即在IP头部和IP负载间插入ESP头部,再在尾部插入ESP尾部和ESP验证数据image_1d856t0pe1dos1k2v1usv60j1jr361.png-10.1kB
隧道模式是在原始IP数据包封装在了一个新的IP包内,而且在新IP头(加密点IP)部和原始IP头部之间插入ESP头部,尾部加上ESP尾部和验证数据。
image_1d856tktj1o4h11s3igi1p83150n6h.png-14.3kB

密钥有效期:

长期使用一个密钥不安全,需要不断更新,新的密钥可由旧的密钥衍生。
完美向前保密:每次密钥更新都会重新生成一起密钥和前面的密钥无关

互联网密钥交换协议 IKE(Internet Key Exchange)

对建立 IPSec的双方进行认证(需要预先协商认证方式),通过密钥交换,产生用于加密和 HMAC 的随机密钥,协商协议参数(加密协议、散列函数、封装协议、封装模式和密钥有效期),协商完成后的结果就叫做安全关联(SA)。
SA 一共有两种类型:
IKE SA:安全防护(加密协议、散列函数、认证方式、密钥有效期等)协议的细节。
IPSec SA:安全防护实际用户流量(通信点之间流量)的细节。

三个模式两个阶段
image_1d857513sun918et7661bcri7i7b.png-45.4kB
第一阶段
1.1-2个包交换
主要任务:
(1)通过核对收到的ISAKMP数据包的源IP地址,判断收到的ISAKMP数据包是否源自于合法对等体
image_1d8577qc87t1kmr1gmc1v0n5v77r.png-17.7kB
(2)协商IKE策略
image_1d8578dgqcj88j0mcb1iss110o88.png-71.4kB
IKE协商策略包含内容:加密策略,散列函数,DH组,认证方式,密钥有效期。协商出来的策略主要用于第5-6个包交换认证和第二阶段QM模式3个包策略协商,并不用于加密感兴趣流。

2.3-4个包交换:
image_1d857jfa51lpli4ilfg1ps51s69bo.png-105.1kB
(1)发起方首先随机产生g、p、a,用离散对数函数计算得出A。
(2)把 g、p、A 发送给接收方。
(3)接收方收到后,随机产生b,使用接收到的g和p,用离散对数函数计算得到 B。
(4)然后把 B 回送给发起方。
(5)接收方通过 Ab mod p 得到的结果, 等于发起方通过 Ba mod p 计算得到的结果,也等于 gab mod p。
(6)通过 DH 算法得到了一个共享秘密 gab mod p。
(7)g和p较大时,已知a求A (8)CPU计算速度很快,已知A求a几乎不可能,g和p的由1-2包交换的DH组大小决定。
通过DH算法双方得到共享密钥,并通过密钥衍生算法得到加密和HMAC处理IKE信息的密钥,加密感兴趣流的密钥就是由共享密钥衍生而来。

3.5-6个包交换:
image_1d8579o971tlfd0t15ik17jek4u95.png-24.3kB
主要任务就是认证,通过前四个包协商得到了IKE策略以及共享密钥,在此基础上进行认证
过程:
(1)发起方根据接收方IP地址查询本地IPSec配置,找到与其对应的预共享密钥。
(2)发起方把预共享秘密和 IKE策略内容、DH计算的密钥资源,还有其他一些接收双方都知道的内容一起进行散列计算,得到的结果就是“认证散列值”。
(3)发起方把“认证散列值”和本地加密点IP地址放入第5个IKE数据包中,加密后发送给接收方。
(4)接收方首先对收到的第5个IKE数据包进行解密,提取出发起方的IP地址,并且基于发起方的IP地址查询本地
IPSec配置,找出对应的预共享秘密。
(5)接收方把查询到的共享秘密,和其他双方已知内容一起进行计算散列值,得到“认证散列值”
(6)将自己的“认证散列值”与发送方发来的“认证散列值”进行比较,如果相等,接收方就认证了发起方,然后通过相同的方式发起第6个包给发送方,让发送方认证接收方。

第一阶段主要任务就是协商策略,产生共享密钥,完成认证。完成认证后会建立一个双向的IKE/ISAKMP SA 安全关联,这个安全关联仅维护了处理IKE流量的相关策略,并不用于处理实际感兴趣流。后续的第二阶段就是在此安全关联的保护下进行。

第二阶段
image_1d857cb7r1iq79ne1hh6e41avba2.png-25.6kB
主要任务就是在第一阶段得到的安全环境下,协商处理感兴趣流的IPsec策略
策略包含:
(1)感兴趣流
(2)加密策略
(3)散列函数
(4)封装协议
(5)封装模式
(6)密钥有效期
image_1d857gv5ft6i1je7f0iem71f09af.png-97.4kB
第一个包:发起方会把感兴趣流相关得到IPsec策略一起发送给接收方,并由接收方来选择适当的策略,与主模式交换策略的方式相同,但是不同的是第一阶段协商完成后会建立一个双向的SA,现在只会建立单向的Ipsec SA,即接收方选择发送方的IP sec策略后用于处理接收方发送给发送方的流量,建立接收方到发送方的IP sec SA
第二个包:接收方使用发送方的IP sec策略处理流量(自己的IP sec策略)发送给发送方,发送方接收后选择一个IPsec策略来处理自己到发送方的流量,建立发送方到接收方的 Ipsev SA
第三个包:发送方使用接收方的IP sec策略处理流量(确认?)发送给接收方。IP sec SA建立完成。

第二阶段主要任务就是基于感兴趣流来协商相应的IP sec SA